//
//  HMMainViewController.swift
//  Weibo05
//
//  Created by IvesMac on 2017/6/4.
//  Copyright © 2017年 IvesMac. All rights reserved.
//

import UIKit
/// 根视图控制器
class HMMainViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 创建子视图控制器
        
        // 添加tabbar上的按钮
        let hmTabbar = HMTabbar()
        // 设置代理
//        hmTabbar.hmDelegate = self
        
        // 执行回到的闭包
        hmTabbar.composeCallBack = { [unowned self] in
            
            print("我是闭包回调过来的")
            print(self)
            
        }
        
        // 使用KVC可以给OC里面的只读属性赋值,可以给私有变量赋值
        self.setValue(hmTabbar, forKey: "tabBar")
        
        //  MARK -- 想要给系统的创建子控制器的方法添加参数,重载这个方法
        addChildViewController(childController: HMHomeTableViewController(), title: "首页", imageName: "tabbar_home")
        addChildViewController(childController: HMMessageTableViewController(), title: "消息", imageName: "tabbar_message_center")
        addChildViewController(childController: HMDiscoverTableViewController(), title: "发现", imageName: "tabbar_discover")
        addChildViewController(childController: HMMeTableViewController(), title: "我的", imageName: "tabbar_profile")
        
    }

    // 重载添加子视图控制器的方法
    func addChildViewController(childController: UIViewController, title:String, imageName:String) {
        // 设置tabbarItem的属性
        // 图片,使用原始方式渲染
        childController.tabBarItem.image = UIImage(named:imageName)
        childController.tabBarItem.selectedImage = UIImage(named:"\(imageName)_selected")?.withRenderingMode(.alwaysOriginal)
        // 文字 和 颜色属性 文字大小
        childController.title = title
        childController.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.orange], for: .selected)
        childController.tabBarItem.setTitleTextAttributes([NSFontAttributeName:UIFont.systemFont(ofSize: 13)], for: .normal)
        // 创建导航控制器
        let nav = HMNavigationController(rootViewController: childController)
        // 添加子控制器
        addChildViewController(nav)
        
        
        
    }
    
    
}

//  MARK: -- 实现代理方法
//extension HMMainViewController: HMTabBarDeletage {
//    func composeOperation() {
//        print("我是代理方法调用的")
//    }
//}

